import axios from 'axios'

// 创建请求对象
const request = axios.create({
	baseURL: "http://47.112.233.130:8888/",
	vaildateStatus: function(status) {
		console.log(status);
		// 请求状态码小于500做成功处理
		return status < 500;
	},
});

// 设置请求拦截器
request.interceptors.request.use(function(config) {
	console.log("请求拦截器:", config)
	// 判断请求的是否是登录接口
	if (config.url === '/users/login/') return config;
	// 是需要鉴权的接口
	if (!window.sessionStorage.getItem('token')) return config;

	// 获取localStorage的token，添加到请求头中
	config.headers['Authorization'] = 'Bearer ' + window.sessionStorage.getItem('token');
	console.log(config.headers['Authorization'])
	return config
});


// // 添加响应拦截器
// request.interceptors.response.use(function(response) {
// 	// 在响应拦截其中，可以对响应的http状态码做相关的判断，然后进行相关的处理
// 	console.log("响应拦截器111", response.status)
// 	if (response.code === '401') {
// 		// 在页面给出对应的提示
// 		alert(response.data.detail)
// 	}
// 	return response;
// }, function(error) {
// 	console.log("响应拦截器:",error)
// 	alert("error")
// 	return Promise.reject(error);
// })


export default{
	// 登录接口
	loginApi(params) {
		return request.post('/users/login/', params)
	},
	
	// 注册接口
	registerApi(params) {
		return request.post('/users/register/', params)
	},
	// 获取所有项目的接口
	getPorject(){
		return request.get('/projects/')
	},
	
	// 删除项目的接口
	delProject(id){
		// return request.delete(`/projects/${id}/`)
		return request.delete('/projects/' + id + '/');
	},
	
	// 添加项目
	addProject(params){
		return request.post('/projects/', params);
	},
	
	// 修改项目
	updateProject(pro){
		return request.put('/projects/' + pro.id + "/" , pro);
	},
	
	// --------------------------模块相关------------------------------
	// 获取所有的模块
	getModules(params){
		return request.get('/modules/', {
			params: params
		})
	},
	
	// 创建模块
	createMoudles(params){
		return request.post('/modules/', params)
	},
	
	// 删除模块
	delMoudles(id){
		return request.delect(`/modules/${id}/`)
	},
	
	// 修改模块
	updateMdoudles(params){
		return request.put(`/modules/${params.id}/`, params)
	},
	
	// --------------------------接口相关------------------------------
	// 获取单个接口
	getInterface(id){
		return request.get(`/interfaces/${id}/`)
	},
	
	// 创建接口
	createInterfaces(params){
		return request.post('/interfaces/', params)
	},
	
	// 删除接口
	deleteInterfaces(id){
		return request.delect(`/interfaces/${id}/`)
	},
	
	// 修改接口
	updateInterfaces(id, params){
		return request.put(`/interfaces/${id}/`, params)
	},
	
	// --------------------------用例相关------------------------------
	// 创建测试用例
	CreateTestCases(params){
		return request.post('/testcases/', params)
	},
	
	// 更新测试用例
	updateTestCases(id, params){
		return request.put(`/testcases/${id}/`, params)
	},
	
	// 删除测试用例
	delCase(id){
		return request.delete(`/testcases/${id}/`)
	},
	
	// 获取所有测试用例
	getTestCases(id){
		return request.get(`/testcases/${id}/`)
	},
	
	// 获取单条测试用例数据
	getCaseData(id){
		return request.get(`/testcases/${id}/`)
	},
	
	// 删除单条测试记录
	delRecord(id){
		return request.delete(`/test_records/${id}/`)
	},
	// --------------------------任务相关---------------------------
	// 获取测试任务
	getTasks(params){
		return request.get('/tasks/', {
			params: params
		})
	},
	
	// 创建任务
	createTasks(params){
		return request.post('/tasks/', params)
	},
	
	// 编辑任务
	eidtTasks(id, params){
		return request.put(`/tasks/${id}/k`, params)
	},
	
	// 运行任务
	runTasks(id, params){
		return request.post(`/tasks/${id}/run`, params)
	},
	
	// 删除任务
	delTasks(id){
		return request.delete(`/tasks/${id}/`)
	},
	
	// --------------------------定时任务相关---------------------------
	// 获取定时任务
	getCron(params){
		return request.get(`/periodic_tasks/`, {
			params: params
		})
	},
	
	// 创建定时任务
	createCron(params){
		return request.post(`/periodic_tasks/`, params)
	},
	
	// 启用or停用定时任务
	updateCron(id, params){
		return request.post(`/periodic_tasks/${id}`, params)
	},
	
	
	// --------------------------测试报告------------------------------
	// 获取测试单个报告
	getReport(id){
		return request.get(`/reports/${id}/`)
	},
	
	// 获取报告运行日志
	getReprotLog(id){
		return request.get(`/reports/${id}/log/`)
	},
	
	// --------------------------单个用例运行------------------------------
	runCase(params){
		return request.post('/request/', params)
	},
	
	// --------------------------项目环境------------------------------
	// 项目环境
	getEnvs(params){
		return request.get('/environments/?project/', {
			params: params
		})
	},
	
	// 创建环境
	createEvent(params){
		return request.post("/environments/", params)
	}
	
	
}
